An instruction set, or instruction set architecture (ISA), is part of the computer architecture related to programming of the computer. The programming may relate to different aspects of the computer, including the native data types associated with instructions, register architecture, addressing modes, memory architecture, interrupt and exception handling, and external input and output (I/O). It should be noted that the term instruction generally refers herein to macro-instructions implemented in logic circuitry in the form of dedicated execution units of the processor.
Programming languages (such as the C programming language) commonly include a structure data type that may further include data elements (such as variables) of the same data type or different data types. The type of data elements may include byte, word, double-word, and quad-word, whereas depending on implementations, the byte, word, double-word, and quad-word data element can include respective 8, 16, 32, and 64 bits. The data elements of the structure (also referred to as “data structure”) may be accessed (e.g., read or write) through an identifier of the structure and an identifier for the data element within the structure. An array of structures (AoS) includes a collection of structures that may be identified according to an index of the array. Programs performing computation using AoS commonly involve accessing data elements of such arrays in a computational loop. The loop may include store operations that move data organized as AoS from registers to memory or load operations that move data associated with the AoS from memory to registers.